《汇编语言(第三版》王爽著笔记
序
学习笔记
第一章 基础知识
1.1 机器语言
01表示,简单程序就已经晦涩难懂以及难以排查错误
1.2 汇编语言的产生
机器语言的缺点,所以产生了汇编语言
mov ax,bx 将寄存器bx内容送到ax中
1.3 汇编语言组成
三类指令组成:汇编指令,伪指令,其他符号 , 核心:汇编指令
1.4 寄存器
内存,用于存放指令和数据
1.5 指令和数据
内存和磁盘中指令和数据都是二进制数据,cpu在工作用会将某些数据看做指令,某些看成数据;
1.6 存储单元
存储器会被分成若干存储单元,从0开始顺序编号
8bit(位) = 1Byte(字节)
1.7 cpu对存储器的读写
cpu从内存中读取数据,需要知道数据的地址
cpu要对数据进行读写,需要进行三类信息交互:地址信息,控制信息,数据信息
电子计算机通过导线传输电信号,总线负责在计算机中链接cpu和芯片,总线分三类:地址总线,控制总线,数据总线
MOV AX,[3] 3号地址的数据传入AX寄存器中
1.8 地址总线
一根线高电平低电平表示01,几根线表示几位二进制
几根线表示几位的寻址能力
- 设置: objc_setAssociatedObject(self, @”name”,name, OBJC_ASSOCIATION_RETAIN_NONATOMIC); 获取: objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy); 移除: objc_removeAssociatedObjects(self);
- 关联对象并不是存储在被关联对象本身内存中
- 关联对象存储在全局的统一的一个AssociationsManager中
- 策略:
1 | typedef OBJC_ENUM(uintptr_t, objc_AssociationPolicy) { |
- 如果设置关联对象为nil,就相当于是移除关联对象
- weak修饰的属性,在对象销毁时候指针就置空了,但是哈希表内对应的值还在,当我们使用这个指针去释放的时候,这个指针地址已经为空了